package com.qin.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.stream.Collectors;

import com.qin.entity.OrderBook;

import cn.hutool.db.Db;
import cn.hutool.db.Entity;

/**
 * 操作ShoppingBook类
 * @author BestRiven
 *
 */
public class OrderBookDao {

	/**
	 * 插入一个订单图书
	 * @param shoppingBook 要插入的订单图书
	 * @return 自增id
	 */
	public Long insertOrderBook(OrderBook orderBook) {
		Long insertForGeneratedKey = 0L;
		try {
			insertForGeneratedKey = Db.use().insertForGeneratedKey(Entity.parseWithUnderlineCase(orderBook));
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return insertForGeneratedKey;
	}
	
	/**
	 * 批量插入多条订单图书
	 * @param orderBook
	 * @return
	 */
	public int[] insertOrderBooks(List<OrderBook> orderBooks) {
		List<Entity> collect = orderBooks.stream().map(orderBook->{
			return Entity.parse(orderBook, true, true);
		}).collect(Collectors.toList());
		
		
		try {
			int[] insert = Db.use().insert(collect);
			
			return insert;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 通过id删除订单图书
	 * @param id 要删除订单中图书的id
	 * @return 执行的行数
	 */
	@Deprecated
	public int deleteOrderBook(Long id) {
		return 0;
	}
	
	/**
	 * 通过 id查找到要修改订单，输入一个订单图书类提供修改信息
	 * @param id 要修改的订单图书id
	 * @param orderBook 要修改的订单图书信息
	 * @return 影响的行数
	 */
	@Deprecated
	public int updateOrderBook(Long id, OrderBook orderBook) {
		return 0;
	}
	
	/**
	 * 根据订单id查询出所有的订单图书
	 * @param id 订单id
	 * @return 所有的订单图书
	 */
	public List<OrderBook> queryOrdersBookByOrderId(Long id) {
		List<OrderBook> find = null;
		try {
			find = Db.use().find(Entity.create("order_book").set("order_id", id),OrderBook.class);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return find;
	}
}
